#ifndef MINIBANK_MAINMANU_HH
#define MINIBANK_MAINMANU_HH


#include <string>
#include "Banksystem.hh"


namespace minibank {

class MainManu {
public:
    MainManu();                                   // Default constructor
    MainManu(const MainManu& other);              // Copy constructor
    MainManu& operator=(const MainManu& other);   // Copy assignment operator
    ~MainManu();                                  // Destructor

    void show();         // Show main menu
    void handleInput();  // Handle user input

private:
    void registerCustomer();
    void accessCustomer();
    void displayAllAccounts();
    void showTransactionReports();
    void accessCustomerAccounts();
    void showCustomerMenu(const Customer* customer);
    BankSystem bankSystem_;
};

} // namespace minibank

#endif // MINIBANK_MAINMANU_HH
